package com.wtgroup.demo.leetcode.q027;

/**
 * LeetCode
 *
 * 【点评】
 * 代码非常简洁。但应试时很难想到。
 * @author dafei
 * @version 0.1
 * @date 2021/4/7 11:33
 */
public class Q027_M1_LC {

    public int removeElement(int[] nums, int val) {

        // 只for快指针
        // 开始两者重合, 一旦发现有等值, 快指针就跑的快了, 从此开启后面忘前面复制(实际是完成了移动).
        int i = 0;
        for (int j = 0; j < nums.length; j++) {
            if (nums[j] != val) {
                nums[i] = nums[j];
                i++;
            }
        }

        // 最终 i 指向的位置不论是否等于 val 都不管. 即使等, 实际该值已经复制到前面去了, 此处必须忽略.
        return i;
    }

}
